package ar.uba.fi.taller2.cmmiassistant.frontend.adaptadores.combobox;

import ar.uba.fi.taller2.cmmiassistant.controlador.Controlador;
import ar.uba.fi.taller2.cmmiassistant.frontend.adaptadores.Etiqueta;
import ar.uba.fi.taller2.cmmiassistant.frontend.adaptadores.Item;
import ar.uba.fi.taller2.cmmiassistant.frontend.adaptadores.etiquetas.EtiquetaBeanProperty;
import ar.uba.fi.taller2.cmmiassistant.frontend.adaptadores.etiquetas.EtiquetaCompuesta;
import ar.uba.fi.taller2.cmmiassistant.frontend.adaptadores.etiquetas.EtiquetaConstante;
import ar.uba.fi.taller2.cmmiassistant.modelo.evaluacion.Instancia;
import ar.uba.fi.taller2.cmmiassistant.modelo.evidencias.Evidencia;
import ar.uba.fi.taller2.cmmiassistant.observador.ServicioNotificacion;

public class ComboBoxModelEvidencias extends ComboBoxModelAdapter {

    protected static final Etiqueta SEPARADOR = new EtiquetaConstante(" - ");

    public ComboBoxModelEvidencias() {

    }

    public Controlador getControlador() {

        return this.controlador;
    }

    public void setControlador(Controlador controlador) {

        super.setControlador(controlador);

        ServicioNotificacion.addObservador(controlador.getModelo()
                .getInstanciaSeleccionada(), this);
    }

    protected void actualizarItems() {

        this.getItems().clear();

        Instancia instancia = this.getControlador().getModelo()
                .getInstanciaSeleccionada().getValor();

        if (instancia != null) {

            for (Evidencia evidencia : instancia.getEvidencias()) {

                Item item = new Item(new EtiquetaCompuesta(
                        new EtiquetaBeanProperty(evidencia, "idEvidencia"),
                        SEPARADOR, new EtiquetaBeanProperty(evidencia,
                                "descripcion")));
                
                this.getItems().add(item);
            }
        }
    }
}
